package com.lanou3g.code0423.set;

/**
 * Created by dllo on 18/4/23.
 */
public class Person {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }


    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (!(obj instanceof Person)) {
            //insance of 关键字:
            // 用来判断左边的对象 是否是右边类型
            //或者右边类型的子类
            // 或者实现了 右边类型接口
            //如果是 ,则返回 true, 不是返回false

            return false;
        }
        //之前的 代码 都是套路,永远这么写
        //下面这两行代码  才根据自己的代码
        //进行 判断
        Person other = (Person) obj;

        return this.name.equals(other.getName()) && this.age == other.getAge();
    }

    //以后 统一使用idea: command+n
    //选择 equals()&hashCode)
    // 把要判断相等的属性 勾选上,然后点确定即可
    //不需手写
    @Override
    public int hashCode() {
        //返回值的规则, 行业标准,体现equals()里使用的属性即可
        //怎么算  随便
        return name.hashCode() + age;
    }
}

